home *** CD-ROM | disk | FTP | other *** search
-
- *
- *MOVE L(CONST) WORDS FROM A(ROM ITEM)
- *TO B(RAM VAR)
- *ROM ITEM IS:
- *
- MOVDAT $MACRO A,B,L
- $VAR ST
- $ASG '*' TO ST.S
- $IF B.L=0
- ACTAR AR1
- $ASG '*' TO B.S
- $ENDIF
- $IF L.V<3 ONE OR TWO WORDS
- $IF A.SV=ST.SV A = *
- ARTAC AR0
- $ELSE
- $IF A.L#=0 A = PROGRAM ADDRESS
- LCAC :A:
- $ENDIF
- $ENDIF
- $IF B.SV=ST.SV
- LARP 1
- TBLR *+ READ FIRST WORD
- $ELSE
- TBLR :B:
- $ENDIF
- $IF L.V=2 TWO WORDS
- ADD ONE,0 INCREMENT POINTER
- $IF B.SV=ST.SV
- TBLR *+ READ NEXT WORD
- $ELSE
- TBLR :B:+1
- $ENDIF
- $ENDIF
- $ENDIF
- $IF L.V>2
- $IF A.L=0
- ACTAR AR0
- $ASG '*' TO A.S
- $ENDIF
- $IF B.SV=ST.SV
- $IF A.SV#=ST.SV
- CALL MOVC$A MOVE
- REF MOVC$A
- DATA :A: FROM :A:
- $ELSE
- CALL MOVC$$ MOVE
- REF MOVC$$
- $ENDIF
- $ELSE
- $IF A.SV#=ST.SV
- CALL MOVA$B MOVE
- REF MOVA$B
- DATA :A: FROM :A:
- $ELSE
- CALL MOVC$B MOVE
- REF MOVC$B
- $ENDIF
- DATA :B: TO :B:
- $ENDIF
- DATA :L: FOR :L: WORDS
- $ENDIF
- $END